The present invention relates to the transmission of packets which contain transaction attributes. The invention is particularly but not exclusively concerned with the transmission of packets in an integrated circuit comprising a plurality of functional modules interconnected via a packet router.
Computer systems and integrated circuit processors exist which implement transactions with the dispatch and receipt of packets. Request packets define an operation to be performed and response packets indicate that a request has been received and whether or not the operation defined in a request packet has been successfully carried out. The integrated circuit processor can comprise a plurality of functional modules connected to a packet router for transmitting and receiving the request and response packets. Transactions involve the dispatch of request packets and receipt of corresponding response packets. Each request packet prompts the generation of an associated response packet which is returned to the indicator of the request.
Current routing systems rely on an arbitration mechanism which controls the flow of request and response packets over a packet router. This mechanism normally operates under the control of dedicated control signals from the functional modules, for example a request signal to request access to the packet router and a grant signal to grant access to the packet router. By increasing the number of dedicated control signals it is possible to increase the complexity of arbitration mechanisms, for example to take into account priority. Generally, the design process is such that the architecture of a processor is designed and the functional modules which are required are determined. Then, depending on the nature of the functional modules and the requirements which their nature impose on the packet router, a suitable arbitration mechanism is implemented with the necessary packet protocol and control signals to support that mechanism.
Generally, the control signals which control the arbitration apply globally across the packet router and are generated by the functional modules internal routing circuitry.
It is an aim of the present invention to provide a packet protocol which can be utilised across a number of different projects and designs, and in particular to allow for performance enhancements based on transaction information.
According to one aspect of the present invention there is provided an integrated circuit comprising: a plurality of functional modules interconnected via a packet router, each functional module having packet handling circuitry for generating and receiving packets conveyed by the packet router; wherein a first set of said functional modules act as initiator modules and have packet handling circuitry which includes request packet generation circuitry for generating request packets for implementing transactions, each request packet including a destination indicator identifying a destination of the packet and a transaction field holding a unique transaction number for each request packet and at least one transaction attribute, and wherein a second set of said functional modules act as target modules and each have packet handling circuitry which includes packet receiver logic for receiving said request packets and response packet generation logic for generating respective response packets, each response packet having a copy of the transaction field transmitted with the respective request packet; the integrated circuit further comprising routing control circuitry which is operable to read said at least one transaction attribute and to control the manner in which packets are conveyed by the packet router responsive to said at least one transaction attribute.
The unique transaction number uniquely identifies the transaction with which that request packet is associated. When such a request packet is received at a destination module, a response packet is generated which also identifies the unique transaction number. This allows responses and requests to be matched at the initiator module, for example to reorder received responses such that they are properly associated with their respective requests.
Thus, according to the present invention transaction attributes are associated with particular packets rather than with the system control. Thus, any systems which implement a distributed/hierarchical routing and arbitration system can utilise this information where it is important for system performance, and ignore it at points in the system where it is not. Because the transaction attributes are associated with the packets, they are always available.
Another aspect of the invention provides an initiator functional module for connection in an integrated circuit comprising: an interface for supplying and receiving packets to and from the functional module, said interface being connected to a port for connecting the functional module to a packet router; packet handling circuitry for handling said packets and including request packet generating logic which generates request packets for supply to the packet router via the interface, each request packet having a destination indicator identifying a destination of the packet and a transaction field which comprises a unique transaction number for each request packet and at least one transaction attribute for use by routing control of the integrated circuit in routing the transaction over the packet router.
A further aspect of the invention provides a target functional module for connection in an integrated circuit comprising: an interface for supplying and receiving packets to and from the functional module, said interface being connected to a port for connecting a functional module to a packet router; packet receiver logic which is operable to receive request packets supplied from the packet router via the interface to the target functional module, each request packet having a transaction field including a unique transaction number and at least one transaction attribute, wherein the target module further comprises packet receiver logic for generating respective response packets on receipt of each request packet, each response packet having a transaction field which holds a copy of the unique transaction number and said at least one transaction attribute conveyed by the respective request packet.
A further aspect of the invention provides a method of implementing transactions in an integrated circuit comprising a plurality of functional modules interconnected via a packet router, the method comprising: at one of said functional modules acting as an initiator module, generating a request packet including a destination indicator identifying a destination of the packet and a transaction field holding a unique transaction number and at least one transaction attribute associated with the transaction; reading the transaction attribute conveyed by the request packet and using the transaction attribute in an arbitration mechanism controlling the flow of packets on the packet router; at the destination indicated by the destination indicator, receiving said request packet and generating a response packet for transmission to the initiator functional module, said response packet holding a copy of the transaction field of the corresponding request packet.
A further aspect of the invention provides a method of implementing transactions in an integrated circuit comprising a plurality of functional modules interconnected via a packet router, the method comprising: at one of said functional modules acting as an initiator module, generating a request packet including a destination indicator identifying a destination of the packet and a transaction field holding a unique transaction number and a post indicator; detecting the post indicator at a local routing control unit and generating a response packet; at the destination indicated by the destination indicator, receiving said request packet and generating a further response packet with the post indicator set; and detecting receipt of the response packet at the local routing control unit and deleting said packet.
The transaction field can hold one or a plurality of transaction attributes.
A first transaction attribute acts as a grouping indicator to indicate to the routing control circuitry that the performance of the system would be enhanced if the packets with this indicator set are kept in an uninterrupted sequence.
Because the transaction field is copied over to respective response packets, the same transaction attribute is set in response packets of the linked or grouped memory access operations. This has a similar effect on the routing control circuitry.
Another transaction attribute acts as a priority indicator to indicate the priority of the transaction. The priority indicator can be used at the routing control circuitry to arbitrate transactions on the packet router.
Another transaction attribute acts as a post bit which, when set in a request packet, causes the routing control circuitry to generate a local response packet. When the request packet is received by the destination target module, a normal response packet with a copy of the transaction field is generated and in this case the routing control circuitry is operable responsive to setting of the post bit in the response packet to locally delete that response packet.
For a better understanding of the present invention and to show how the same may be carried into effect reference will now be made by way of example to the accompanying drawings.